//路由处理入口文件
const fs = require('fs')
const routeHandle = require('./handle')
const staticFile = require('./staticFile')

//路由对应对象
const routeList ={
    "/": routeHandle.root,
    "/home":routeHandle.home,
    "/about":routeHandle.about,
    "/home/list":routeHandle.home_list,
    "/noFound":routeHandle.nofound
}

//路由处理函数
function router(path,req,res,data){
    //在路由运行前需要完成路径判断，如果路径是图片，样式，脚本等就不走路由
    /*
        如果路径后缀是css，js，jpg，png，gif
    */
    //取path中的扩展名
    const extStr = path.substring(path.lastIndexOf('.')+1);
    //判断后缀名是否为指定的字符串,判断是否为静态文件
    if(staticFile(extStr,req,res)){
        // console.log(req.url)
        //如果这里的是静态文件，则直接终止后面的路由处理
        return false;
    }
    let fun = routeList[path]; //这里如果是知道的路由值，可以使用点的方式引用对应的函数，不确定的情况下使用中括号的方式引用
    if(!fun) fun = routeList['/noFound'];
    fun(res,data)
}

//暴露路由
exports.routerFun = router